1. Field of the Invention
The present invention relates generally to data transmission, and more particularly to detecting a data start location in data transmission.
2. Description of Related Art
FIG. 1 illustrates a prior art data frame structure and a data transmission process. At a transmitter 1, a data frame 110 may start with a preamble field 1101, which is followed in sequence by a syncmark field 1102, a data field 1103 (also referred to as payload), and an ECC parity field 1104. The syncmark may be a unique series of 0 and 1 and may be used to identify, preferably with high reliability, the start of data to be transmitted. Since the data field is immediately after the syncmark, as long as the syncmark is detected, the start of data will be located. An error correcting code (ECC) may be used to protect the data by detecting whether there is a transmission error.
In the transmitter 1, an ECC encoder 101 may be non-systematic. For example, the ECC encoder 101 may multiply an original message vector, which may include the data field and one or more other fields in the data frame, with a generator polynomial to generate a codeword. The ECC encoder 101 may be a systematic encoder which receives an original message X and generates a codeword Y including the original message X and parity bits P, as shown in FIG. 2A.
Looking back at FIG. 1, in a receiver 3, the codeword received from the transmitter 1 via a communication channel 2 may first enter a syncmark detector 102, which may search for the syncmark and detect the data start location. An ECC decoder 103, which receives the codeword via a channel detector 104 and a data framing block 105, may then check whether there is a transmission error. If either the syncmark search or ECC decoding fails, the receiver may fail to recover the data.
FIG. 2B illustrates a failed search for data start location in a prior art data transmission system. As shown, a transmitted data frame may be “00 1 101110”, wherein the preamble is “00”, the syncmark is “1”, and the data to be transmitted is “101110”. At the receiver side, the syncmark detector 102 may search for the syncmark “1” and the six bits after the syncmark will be retrieved as the data. If a transmission error occurs, and the preamble in the received data frame changes to “10” from “00”, the data frame received may be “10 1 101110”. The syncmark detector 102 may detect the first “1” in the data frame as the syncmark, and retrieve the six bits “011011” following it as the transmitted data, instead of “101110” which is intended to be transmitted from the transmitter. The syncmark detector thus would confuse the “1” with other data in the frame. The wrong data may then enter the ECC decoder 103, which is not able to correct this type of mistake.
One known solution to this problem is to use a syncmark which is sufficiently long. However, a long syncmark may reduce data format efficiency because of increase in overhead in a data frame, for example. Therefore, it may be desirable to provide a method and apparatus which may improve reliability in detecting data start location without costing data format efficiency.